如何在Android中执行TDD? 第1部分 - 概述(译)

Android自动化测试教程系列,使用JUnit&Espresso

自动化测试非常重要,因为它在开发应用程序时确保了质量.TDD在编写实现之前执行写入测试。

有关TDD的更多信息,请参阅此前的教程

测试金字塔:

正如我们可以看到下面的金字塔:

测试金字塔

单元测试涵盖了制作坚实基础的大部分金字塔。 单元测试很容易编写。

集成测试确保模块的集成是正确的,并覆盖第二大块金字塔。

功能测试通常描述系统在三部分中所做的并占据最小的部分。

有许多测试工具和框架可以在开发应用程序时使用。 其中一些是由Google提供和支持的,其中一些是第三方。

Android中的测试类型:

单元测试

单元测试主要针对与其他组件隔离的最小功能(如方法,类,组件或小模块)。

用于单元测试的工具:

  • JUnit是编写可重复测试的简单框架。 它是单元测试框架的xUnit体系结构的一个实例。
  • Robolectric是流行的Android单元测试框架,通过在JVM上运行测试(不需要任何设备或仿真器),可以加快测试的执行速度。

UI测试

UI测试是模拟用户交互的测试,如单击按钮,在EditText中输入文本。 Android Instrumentation是Android系统中的一组“挂钩”,它允许您控制Android组件的生命周期(即自己驱动活动生命周期,而不是由系统驱动这些生命周期)。 这些测试需要运行实际的设备或仿真器。

用于UI测试的工具:

  • Espresso - Google提供的Android UI测试框架,可以很好地处理测试同步。
  • UIAutomator - Google提供的Android UI测试框架,用于同时测试多个应用程序。
  • Robotium - 第三方Android UI测试框架(Robotium vs Espresso
  • Selendroid - Selenium for Android

项目测试目录结构

在我们的项目中,两个文件夹托管我们的测试,这些测试是测试和androidTest。

测试目录结构

text:单元测试托管在此文件夹中。 这些测试在JVM上运行,不需要Android设备或模拟器。 这种类型的测试无法访问任何Android框架特定的组件,如上下文。

androidTest: - 所有Instrumentation(Espresso)测试托管在此文件夹中。这些测试需要物理Android设备或模拟器才能运行。

在下一篇文章中,我们将深入探讨遵循和执行单元测试的体系结构。

同时,希望听到有关这方面的建议和意见。

干杯🍻!!!